package com.atguigu.day18.mapsrc01;

import org.junit.Test;

import java.util.HashMap;
import java.util.Hashtable;
/*
Hashtable Vs HashMap

同:
  1.Map接口的孩子  都是存储键值对
  2.底层都是哈希表
不同:
  1.底层数组开辟空间的时机不同
      Hashtable: 第一次创建对象时 底层数组长度为11
      HashMap:  第一次添加数据时 底层数组长度为 16
  2.底层数组的长度计算不一样
       Hashtable: 没有要求
       HashMap: 底层数组的长度 永远时2^n

  3.null值的处理
        Hashtable: key value 都不可以是null
        HashMap:  key value 都可以是null
  4.线程安全问题:
        Hashtable: 线程安全  效率低
        HashMap:  线程不安全  效率高



 */
public class HashtableAndHashMap {

    @Test
    public void test01(){
        Hashtable<String,String> table = new Hashtable<>(23);
       // table.put(null,"B");
        table.put("A",null);
    }
    @Test
    public void test02(){

        HashMap<String,String>map = new HashMap<>(23);
        map.put(null,null);

    }
}
